package com.mvd.app.api;

import com.google.gson.TypeAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonToken;
import com.google.gson.stream.JsonWriter;

import java.io.IOException;

/**
 * @ProjectName: PDA_An_2020
 * @Package: com.mvd.app.api
 * @ClassName: IntegerAdapter
 * @Description: java类作用描述
 * @Author: liuxj
 * @CreateDate: 2023-03-09 10:20
 * @UpdateUser: 更新者
 * @UpdateDate: 2023-03-09 10:20
 * @UpdateRemark: 更新说明
 * @Version: 1.0
 */
public   class IntegerAdapter extends TypeAdapter<Integer> {

    @Override
    public void write(JsonWriter out, Integer value) throws IOException {

    }

    @Override
    public Integer read(JsonReader in) throws IOException {
        if (in.peek() == JsonToken.NULL) {
            in.nextNull();
            return -1;
        }
        //默认的gson其实可以对string转换int，不过仅限string内容为数字，
        //为了保证安全，这里统一处理
        if (in.peek() == JsonToken.STRING){
            in.nextString();
            return -1;
        }
        if (in.peek() == JsonToken.BOOLEAN) {
            in.nextBoolean();
            return -1;
        }
        return in.nextInt();
    }
}
